﻿using System;

namespace Qs.Repository.Wx;

/// <summary>
/// 微信退款回调
/// </summary>
public class WxPayRefundNotifyModel
{
    /// <summary>
    /// 微信订单号
    /// </summary>
    public string TransactionId { get; set; }

    /// <summary>
    /// 商户订单号
    /// </summary>
    public string OutTradeNo { get; set; }

    /// <summary>
    /// 微信退款单号
    /// </summary>
    public string RefundId { get; set; }

    /// <summary>
    /// 商户退款单号
    /// </summary>
    public string OutRefundNo { get; set; }

    /// <summary>
    /// 订单金额，单位：分
    /// </summary>
    public int TotalFee { get; set; }

    /// <summary>
    /// 应结订单金额，单位：分（可能为空）
    /// </summary>
    public int? SettlementTotalFee { get; set; }

    /// <summary>
    /// 申请退款金额，单位：分
    /// </summary>
    public int RefundFee { get; set; }

    /// <summary>
    /// 实际退款金额，单位：分
    /// </summary>
    public int SettlementRefundFee { get; set; }

    /// <summary>
    /// 退款状态
    /// SUCCESS-退款成功
    /// CHANGE-退款异常
    /// REFUNDCLOSE—退款关闭
    /// </summary>
    public string RefundStatus { get; set; }

    /// <summary>
    /// 退款成功时间（格式：yyyy-MM-dd HH:mm:ss）
    /// </summary>
    public DateTime? SuccessTime { get; set; }

    /// <summary>
    /// 退款入账账户
    /// 示例：招商银行信用卡0403
    /// </summary>
    public string RefundRecvAccount { get; set; }

    /// <summary>
    /// 退款资金来源
    /// REFUND_SOURCE_RECHARGE_FUNDS / REFUND_SOURCE_UNSETTLED_FUNDS
    /// </summary>
    public string RefundAccount { get; set; }

    /// <summary>
    /// 退款发起来源
    /// API / VENDOR_PLATFORM
    /// </summary>
    public string RefundRequestSource { get; set; }

    /// <summary>
    /// 用户退款金额（不包含优惠券），单位：分
    /// </summary>
    public int CashRefundFee { get; set; }
}